/*
 * @Author: hrg
 * @Date: 2024-01-27 08:54:43
 * @LastEditTime: 2024-01-27 10:23:09
 * @FilePath: \study_go\study06_gin\gin_demo07\server\main.go
 * @Description:上传多个文件
 */

package main

import (
	"fmt"
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.New()

	r.MaxMultipartMemory = 8 << 20

	r.POST("/upload", test)

	r.Run(":9090")
}

func test(c *gin.Context) {

	// 获取form表单的多部分文件
	form, err := c.MultipartForm()
	if err != nil {
		c.String(http.StatusBadRequest, fmt.Sprintf("获取到服务器错误：%s", err.Error()))
	}

	// 获取所有图片
	// 其中的form.File["files"]的files是根据前端的form表单的name得到的
	files := form.File["files"]

	// 遍历所有图片

	for _, v := range files {
		if err := c.SaveUploadedFile(v, "./file/"+v.Filename); err != nil {
			c.String(http.StatusBadRequest, fmt.Sprintf("获取到服务器错误：%s", err.Error()))
			return
		}
	}

	c.String(200, fmt.Sprintf("上传完成%v文件", len(files)))

}
